﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ExplodingCow.Basilisk.Logic
{
    /// <summary>
    /// Interface for all User types to Use or Inherit from
    /// </summary>
    /// <typeparam name="T">the specific type of User instance being created</typeparam>
    interface IUser<T>
    {
        /// <summary>
        /// Get or Set the User Name
        /// </summary>
        string UserName { get; set; }
        /// <summary>
        /// Get or Set the User Password
        /// </summary>
        string Password { get; set; }

        /// <summary>
        /// Uses the username and password to verify the user
        /// </summary>
        /// <param name="UserName">the string used to determine the user</param>
        /// <param name="Password">the string used to verify the user</param>
        /// <returns></returns>
        bool logIn(string UserName, string Password);

        /// <summary>
        /// Uses the username to logout
        /// </summary>
        /// <param name="UserName"></param>
        /// <returns></returns>
        bool logOut(string UserName);
    }
}
